Crate datafusion_expr
source ·Expand description
DataFusion is an extensible query execution framework that uses Apache Arrow as its in-memory format.
This crate is a submodule of DataFusion that provides types representing logical query plans (LogicalPlan) and logical expressions (Expr) as well as utilities for working with these types.
The expr_fn module contains functions for creating expressions.
Re-exports
pub use aggregate_function::AggregateFunction;
pub use expr::Between;
pub use expr::BinaryExpr;
pub use expr::Case;
pub use expr::Cast;
pub use expr::Expr;
pub use expr::GetFieldAccess;
pub use expr::GetIndexedField;
pub use expr::GroupingSet;
pub use expr::Like;
pub use expr::TryCast;
pub use expr_schema::ExprSchemable;
pub use function::AccumulatorFactoryFunction;
pub use function::PartitionEvaluatorFactory;
pub use function::ReturnTypeFunction;
pub use function::ScalarFunctionImplementation;
pub use function::StateTypeFunction;
pub use window_frame::WindowFrame;
pub use window_frame::WindowFrameBound;
pub use window_frame::WindowFrameUnits;
pub use window_function::BuiltInWindowFunction;
pub use window_function::WindowFunction;
pub use expr_fn::*;
pub use logical_plan::*;
Modules
- Aggregate function module contains all built-in aggregate functions definitions
- Conditional expressions
- Expr module contains core type definition for
Expr
. - Functions for creating logical expressions
- Expression rewriter
- Utility functions for complex field access
- Function module contains typing and signature for built-in and user defined functions.
- Tree node implementation for logical expr and logical plan
- Type coercion rules for DataFusion
- Expression utilities
- Window frame module
- Window functions provide the ability to perform calculations across sets of rows that are related to the current query row.
- Structures used to hold window function state (for implementing WindowUDFs)
Macros
Structs
- Logical representation of a user-defined aggregate function (UDAF).
- Logical representation of a UDF.
- The signature of a function defines the supported argument types and its volatility.
- Logical representation of a user-defined window function (UDWF) A UDWF is different from a UDF in that it is stateful across batches.
Enums
- Enum of all built-in scalar functions
- Represents the result of evaluating an expression: either a single
ScalarValue
or an [ArrayRef
]. - Operators applied to expressions
- Indicates whether and how a filter expression can be handled by a TableProvider for table scans.
- Indicates the type of this table for metadata/catalog purposes.
- A function’s type signature, which defines the function’s supported argument types.
- A function’s volatility, which defines the functions eligibility for certain optimizations
Statics
- Currently supported types by the nullif function. The order of these types correspond to the order on which coercion applies This should thus be from least informative to most informative
Traits
- Describes an aggregate functions’s state.
- Trait for converting a type to a
Literal
literal expression. - Partition evaluator for Window Functions
- The TableSource trait is used during logical query planning and optimizations and provides access to schema information and filter push-down capabilities. This trait provides a subset of the functionality of the TableProvider trait in the core datafusion crate. The TableProvider trait provides additional capabilities needed for physical query execution (such as the ability to perform a scan). The reason for having two separate traits is to avoid having the logical plan code be dependent on the DataFusion execution engine. Other projects may want to use DataFusion’s logical plans and have their own execution engine.
- Trait for converting a type to a literal timestamp
Functions
- Create a literal expression
- Create a literal timestamp expression